<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>jQuery tablesorter 2.0 - applyWidgetId vs. applyWidgets</title>

	<!-- jQuery -->
	<script src="js/jquery-latest.min.js"></script>

	<!-- Demo stuff -->
	<link rel="stylesheet" href="css/jq.css">
	<link href="css/prettify.css" rel="stylesheet">
	<script src="js/prettify.js"></script>
	<script src="js/docs.js"></script>

	<!-- Tablesorter: required -->
	<link rel="stylesheet" href="../css/theme.blue.css">
	<script src="../js/jquery.tablesorter.js"></script>
	<script src="../js/jquery.tablesorter.widgets.js"></script>

	<script id="js">$(function() {

	// call the tablesorter plugin
	$('table').tablesorter({ theme : 'blue' });

	$('button.applyid').click(function(){
		// This method adds the 'columns' widget & sorts the table to make it visible
		$('table')
			.trigger('applyWidgetId', 'columns')
			.trigger('sorton', [ [[0,0]] ]);
		return false;
	});

	$('button.apply').click(function(){
		// This method reapplies the widgets listed in table.config.widgets
		// it won't appear to do anything unless we add 'zebra' to the widgets option
		$('table').data('tablesorter').widgets = ['zebra'];
		$('table').trigger('applyWidgets');
		return false;
	});

	$('button.remove').click(function(){
		// This method removes both the zebra & columns widget entirely
		$('table').trigger('removeWidget', 'zebra columns');
		return false;
	});

});</script>
</head>
<body>
<div id="banner">
	<h1>table<em>sorter</em></h1>
	<h2>applyWidgetId versus applyWidgets</h2>
	<h3>Flexible client-side table sorting</h3>
	<a href="index.html">Back to documentation</a>
</div>
<div id="main">

	<p class="tip">
		<em>NOTE!</em>
		<p>As of <span class="version updated">v2.25.0</span>, using the <code>applyWidgetId</code> will now add the widget to the <code>widgets</code> options, so you will no longer notice any difference between the two methods. The difference is:</p>
		<ul>
			<li><code>applyWidgets</code> - updates all widgets currently listed in the <code>table.config.widgets</code> option (this occurs every time the user sorts or filters the table).</li>
			<li><code>applyWidgetId</code> - Adds (initializes and updates) the named widget. If the widget was not previously included in the <code>table.config.widgets</code> option, it will be added (<span class="version updated">v2.25.0</span>). If the widget is included in the widgets option, then only the named widget will be updated.</li>
		</ul>
	</p>

	<h1>Demo</h1>
	<br>
	<div id="demo"><button type="button" class="applyid">Apply Widget Id</button> (columns & sort)<br>
<button type="button" class="remove">Remove Widget</button> (columns &amp; zebra)<br>
<button type="button" class="apply">Apply Widgets</button> (add 'zebra' to <code>table.config.widgets</code> then trigger <code>applyWidgets</code> method)

<table class="tablesorter">
	<thead>
		<tr><th>First Name</th><th>Last Name</th><th>Age</th><th>Total</th><th>Discount</th><th>Date</th></tr>
	</thead>
	<tbody>
		<tr><td>Peter</td><td>Parker</td><td>28</td><td>$9.99</td><td>20%</td><td>Jul 6, 2006 8:14 AM</td></tr>
		<tr><td>John</td><td>Hood</td><td>33</td><td>$19.99</td><td>25%</td><td>Dec 10, 2002 5:14 AM</td></tr>
		<tr><td>Clark</td><td>Kent</td><td>18</td><td>$15.89</td><td>44%</td><td>Jan 12, 2003 11:14 AM</td></tr>
		<tr><td>Bruce</td><td>Almighty</td><td>45</td><td>$153.19</td><td>44%</td><td>Jan 18, 2001 9:12 AM</td></tr>
		<tr><td>Bruce</td><td>Evans</td><td>22</td><td>$13.19</td><td>11%</td><td>Jan 18, 2007 9:12 AM</td></tr>
	</tbody>
</table></div>

	<h1>Javascript</h1>
	<div id="javascript">
		<pre class="prettyprint lang-javascript"></pre>
	</div>
	<h1>HTML</h1>
	<div id="html">
		<pre class="prettyprint lang-html"></pre>
	</div>

<div class="next-up">
	<hr />
	Next up: <a href="example-widget-columns.html">Columns widget &rsaquo;&rsaquo;</a>
</div>

</div>

</body>
</html>
